﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
using UricaoWeb.Datos.ConexionBD.Propiedad;

namespace UricaoWeb.LogicaDeNegocios.Propiedad
{

	public class LogicaPropiedades
	{
		public static string _idHotel = "";

		#region FUNCIONAMIENTO LOGICO <-> DATOS - HABITACIONES
			#region LLENADO DE DATA VIEWS
			public DataSet filtrarPorNumeroHabitacion(string _idHabitacion, string _idHotel)
			{
				return OperacionHabitacionBD.BuscarHabitacionPorNumero(_idHabitacion, _idHotel);
			}

			public DataSet filtrarPorTipoHabitacion(string _tipoHabitacion, string _idHotel)
			{
				return OperacionHabitacionBD.BuscarHabitacionesPorTipo(_tipoHabitacion, _idHotel);
			}

			internal DataSet filtrarPorPisoHabitacion(string _numeroPiso, string _idHotel)
			{
				return OperacionHabitacionBD.BuscarHabitacionesPorPiso(_numeroPiso, _idHotel);
			}
			#endregion

			#region FILTROS INICIALES DROPDOWNLISTS
			public DataSet GetAllHoteles()
			{
				return OperacionHabitacionBD.ObtenerTodoHotel();
			}

			public DataSet GetHabitaciones(int _idHotel)
			{
				return OperacionHabitacionBD.HabitacionesUnHotel(_idHotel);
			}

			public DataSet HabitacionesPorTipo(int _idHotel)
			{
				return OperacionHabitacionBD.ObtenerHabitacionesPorTipoUnHotel(_idHotel);
			}

			internal DataSet HabitacionesPorPiso(int _idHotel)
			{
				return OperacionHabitacionBD.ObtenerHabitacionesPorPisoUnHotel(_idHotel);
			}
			#endregion

			#region METODOS USADOS - MODIFICACION HABITACIONES
			internal Boolean ValidarPisosHotel(string _pisoHabitacion, string _idHotel)
			{
				return OperacionHabitacionBD.ValidarPisoCorrespondiente(_pisoHabitacion,_idHotel);
			}

			internal bool ModificarFilaHabitacion(DataTable _datosModificar, string _idHabitacion)
			{

				return OperacionHabitacionBD.ActualizarRegistros(_datosModificar, _idHabitacion);
			}

			internal DataSet LlenarTablaHabitacionPorId(string _idHabitacion)
			{
				return OperacionHabitacionBD.ObtenerHabitacionPorId(_idHabitacion);
			}
			
			#endregion

			#region METODOS USADOS - ELIMINACION DE HABITACIONES
			internal Boolean EliminarRegistroHabitacion(string _idHabitacion)
			{
				return OperacionHabitacionBD.SqlDatasourceBorrarRegistroHabitacion(_idHabitacion);
			}
			#endregion

			#region METODOS USADOS - INSERCION HABITACIONES
			internal Boolean InsertarFilaHabitacion(DataTable _datos)
			{
				return OperacionHabitacionBD.InsertarFilaNuevaHabitacion(_datos);
			}
			#endregion

			internal bool InsertPisoNuevo(string _pisoNuevo, string _idHotel)
			{
				return OperacionHabitacionBD.InsertarPisoNuevo(_pisoNuevo, _idHotel);
			}
		#endregion

		#region FUNCIONAMIENTO LOGICO <-> DATOS - HOTEL
            public DataSet MostrarDatosHotel(string _nombreHotel, DataSet _datosHotel)
            {
                Hotel _accesoAhotel = new Hotel();
                _datosHotel = _accesoAhotel.DatosHotel(_nombreHotel, _datosHotel);
                return _datosHotel;
            }

            public void EliminarHotel(string _nombreHotel)
            {
                Hotel _accesoAhotel = new Hotel();
                _accesoAhotel.EliminarHotel(_nombreHotel);
            }

            public bool ValidarEnvioTodosLosDatos(string _nombreHotel, string _telefono, string _urlImagenHotel, string _direccionHotel, string _categoriaHotel, string _descripcionHotel, string _pisos)
            {

                bool _datosCorrectos = false;
                //La variable _datosCorrectos, es un boolean que servira para corroborar que todos los campos tengan valores asignados ya que 
                //todos los datos de este formulario son OBLIGATORIOS

                if (_nombreHotel != "" && _urlImagenHotel != "" && _descripcionHotel != "" && _telefono != "" && _direccionHotel != "" && _categoriaHotel != "" && _pisos != "")
                    _datosCorrectos = true;
                else
                    _datosCorrectos = false;

                return _datosCorrectos;
            }

            public string ValidaExitenciaHotel(string _nombreHotel)
            {
                Hotel _accesoAhotel = new Hotel();
                return _accesoAhotel.ExistenciaHotel(_nombreHotel);
            }

            public void ModificarHotel(string _nombreActualHotel, string _nombreHotel, string _descripcionHotel, string _telefonoHotel, string _estrellaHotel, string _direccionHotel, string _UrlImagenHotel)
            {
                Hotel _accesoAhotel = new Hotel();
                _accesoAhotel.ModificarHotel(_nombreActualHotel, _nombreHotel, _descripcionHotel, _telefonoHotel, _estrellaHotel, _direccionHotel, _UrlImagenHotel);
            }

            public void InsertarHotel(string _nombreHotel, string _descripcionHotel, string _telefono, string _urlImagen, string _direccionHotel, string _categoriaHotel, string _descripcion)
            {
                Hotel _accesoAhotel = new Hotel();
                _accesoAhotel.InsertaHotel(_nombreHotel, _descripcionHotel, _telefono, _urlImagen, _direccionHotel, _categoriaHotel, _descripcion);
            }

            public void InsertarPisos(string _nombre, string _piso)
            {
                Hotel _accesoAhotel = new Hotel();
                _accesoAhotel.InsertaPisos(_nombre, _piso);
            }

            public DataSet ObtenerNombreHoteles()
            {
                Hotel _accesoAhotel = new Hotel();
                DataSet _datos = new DataSet();
                return _datos = _accesoAhotel.NombresHotel();

            }
		#endregion

		public string GetHotelByUser(string _usuario)
		{
			return OperacionHabitacionBD.GetHotelByUsername(_usuario);
		}

		internal DataSet GetHabitacionesSinLaSeleccionada(int _idHotel, string _idHabitacion)
		{
			return OperacionHabitacionBD.GetHabitacionesSinLaSeleccionada(_idHotel, _idHabitacion);
		}
	}

}